use HeThongSim
go
-- Cập nhập tài khoản khách hàng
alter procedure usp_CapNhatTaiKhoan 
				@MaKH int, 
		@TinhTrang  nvarchar(20)
as 
begin
	begin tran
		--Kiểm tra khách hàng có tồn tại không
		if(not exists(select * from KhachHang where MaKhachHang=@MaKH))
		begin
				rollback
				select 0
				return
		end
		
		--update khách hàng
		begin try
			update KhachHang 
			set TinhTrang = @TinhTrang
			where MaKhachHang=@MaKH
		end try
		begin catch
				declare @error varchar(1000)
				set @error = N'Lỗi: ' + error_message()
				raiserror (@error,16,1)
				rollback tran
				select 0
				return
		end catch

		waitfor delay '00:00:10'		

		--Kiểm tra số lượng đơn hàng
		if(@TinhTrang like N'Khóa')
			if((select count(*) 
				from (select top(3)hd.TinhTrang 
						from  KhachHang kh join DonHang hd on kh.MaKhachHang = hd.MaKhachHang 
						where kh.MaKhachHang = @MaKH
						order by hd.NgayMua desc) as KH 
				where KH.TinhTrang like N'Hủy') < 3)
			begin
				rollback
				select 0
				return 
			end
	select 1
	commit tran
	return
end
go 

-- Khách Hàng Đăng Nhập
alter proc usp_DangNhap @email varchar(50), @matkhau varchar(50)
as
	begin tran
			--kiem tra tai khoan ton tai ?
			--set tran isolation level read uncommitted
			waitfor delay '00:00:5'
			if(exists(select * from KhachHang kh where kh.Email = @email and kh.MatKhau = @matkhau and kh.TinhTrang = N'Hoạt động'))
					begin
							select * from KhachHang kh where kh.Email = @email and kh.MatKhau = @matkhau
					end
			
	commit tran
go
